package com.yungu.swift.assets.driver.model.dto;

import com.yungu.swift.base.model.annotation.AbsoluteImgPath;
import com.yungu.swift.base.model.BaseDto;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;


/**
 * 车辆表
 **/
@Data
public class CarDto extends BaseDto {

    /**
     * 车牌
     **/
    private String plateNum;

    /**
     * 车型 uuid
     **/
    private String carModelUuid;

    /**
     * 所属公司uuid
     **/
    private String companyUuid;

    /**
     * 车外观颜色
     **/
    private String carColor;
    /**
     * 核定载客位
     **/
    private Integer seats;
    /**
     * 车辆厂牌
     **/
    private String brand;
    /**
     * 车辆型号
     **/
    private String model;
    /**
     * 车辆类型(以车辆行驶证为准)
     **/
    private String vehicleType;
    /**
     * 车辆所有人
     **/
    private String ownerName;
    /**
     * 发动机号
     **/
    private String engineId;
    /**
     * 发动机VIN码
     **/
    private String vin;
    /**
     * 车辆注册日期
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date certifyDateA;
    /**
     * 车辆燃料类型
     **/
    private String fuelType;
    /**
     * 发动机排量
     **/
    private String engineDisplace;
    /**
     * 车辆照片文件编号
     **/
    private String photoId;
    /**
     * 运输证字号
     * 出租车：营运证号
     **/
    private String certificate;
    /**
     * 车辆运输证发证机构
     **/
    private String transAgency;
    /**
     * 车辆经营区域
     **/
    private String transArea;
    /**
     * 车辆运输证有效期起
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date transDateStart;
    /**
     * 车辆运输证有效期止
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date transDateStop;
    /**
     * 车辆初次登记日期
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date certifyDateB;
    /**
     * 车辆检修状态
     **/
    private Integer fixState;
    /**
     * 车辆下次年检时间
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date nextFixDate;
    /**
     * 车辆年度审验状态
     **/
    private Integer checkState;
    /**
     * 发票打印设备序列号
     **/
    private String feePrintId;
    /**
     * 卫星定位装置品牌
     **/
    private String gpsBrand;
    /**
     * 卫星定位装置型号
     **/
    private String gpsModel;
    /**
     *
     **/
    private String gpsImei;
    /**
     * 卫星定位设备安装日期
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date gpsInstallDate;
    /**
     * 报备日期
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date registerDate;
    /**
     * 服务类型
     **/
    private Integer commercialType;
    /**
     * 运价类型编码
     **/
    private String fareType;
    /**
     * 状态
     **/
    private Integer state;
    /**
     * 操作标识.1新增2修改3删除
     **/
    private Integer flag;
    /**
     * 车牌颜色
     **/
    private String plateColor;
    /**
     * 车牌照片
     **/
    @AbsoluteImgPath
    private String plateImage;
    /**
     * 车辆照片
     **/
    @AbsoluteImgPath
    private String carImage;
    /**
     * 行驶证号
     **/
    private String drivingLicenseNo;
    /**
     * 行驶证照片
     **/
    @AbsoluteImgPath
    private String drivingLicenseImg;
    /**
     * 行驶证照片 副页
     **/
    @AbsoluteImgPath
    private String drivingLicenseSubImg;
    /**
     * 行驶证发证日期
     **/
    private Date drivingLicenseDate;
    /**
     * 所属人电话
     **/
    private String ownerNameMobile;
    /**
     * 发动机功率
     **/
    private Integer enginePower;
    /**
     * 车辆轴距
     **/
    private Double wheelbase;
    /**
     * 当前年审时间
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date checkDate;
    /**
     * 下次年审时间
     **/
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date nextCheckDate;
    /**
     * 车辆技术状况
     **/
    private String vehicleTechnicalCondition;
    /**
     * 安全性能情况
     **/
    private String safetyPerformance;

    /**
     * 车辆行驶里程
     */
    private Double vehicleKilometers;
    /**
     * 代理id
     **/
    private String agentUuid;

    /**
     * 营运证照片
     */
    @AbsoluteImgPath
    private String operationCertificateImg;

    /**
     * 监督卡照片
     */
    @AbsoluteImgPath
    private String monitoringCardImg;
    /**
     * 人车合影
     */
    @AbsoluteImgPath
    private String manCarImg;

    //附加字段
    /**
     * 业务类型
     */
    private Integer businessType;
    /**
     * 城市名称
     **/
    private String cityName;
    /**
     * 代理
     **/
    private String agentName;
    /**
     * 公司名称
     **/
    private String companyName;

    /**
     * 车型名称
     **/
    private String modelName;

    /**
     * 司机姓名
     **/
    private String driverName;

    /**
     * 司机电话
     **/
    private String driverMobile;

    /**
     * 联系人
     **/
    private String contactName;

    /**
     * 联系电话
     **/
    private String contactMobile;

    /**
     * 一对多保险实体
     **/
    private List<CarInsuranceDto> carInsuranceList;
    /**
     * 一对多司机实体
     **/
    private List<DriverDto> driverList;

    /**
     * 网络约约出租车辆运输证照片
     */
    @AbsoluteImgPath
    private String transLicenseImg;

    /**
     * 交强险照片
     */
    @AbsoluteImgPath
    private String compulsoryInsuranceImg;

    /**
     * 商业险照片
     */
    @AbsoluteImgPath
    private String commercialInsuranceImg;

    /*
    车身45°角照片
     */
    @AbsoluteImgPath
    private String carAngle45Img;
}
